GtkTextView *text_view);
static void gtk_text_view_commit_text (GtkTextView *text_view,
const char *text);
+static void gtk_text_view_preedit_start_handler (GtkIMContext *context,
+ GtkTextView *text_view);
static void gtk_text_view_preedit_changed_handler (GtkIMContext *context,
- GtkTextView *text_view);
+ GtkTextView *text_view);
static gboolean gtk_text_view_retrieve_surrounding_handler (GtkIMContext *context,
GtkTextView *text_view);
static gboolean gtk_text_view_delete_surrounding_handler (GtkIMContext *context,
g_signal_connect (priv->im_context, "commit",
G_CALLBACK (gtk_text_view_commit_handler), text_view);
+ g_signal_connect (priv->im_context, "preedit-start",
+ G_CALLBACK (gtk_text_view_preedit_start_handler), text_view);
g_signal_connect (priv->im_context, "preedit-changed",
G_CALLBACK (gtk_text_view_preedit_changed_handler), text_view);
g_signal_connect (priv->im_context, "retrieve-surrounding",
gtk_text_buffer_get_insert (get_buffer (text_view)));
}
+static void
+gtk_text_view_preedit_start_handler (GtkIMContext *context,
+ GtkTextView *self)
+{
+ gtk_text_buffer_delete_selection (self->priv->buffer, TRUE, self->priv->editable);
+}
+
static void
gtk_text_view_preedit_changed_handler (GtkIMContext *context,
GtkTextView *text_view)